package eraikikon;

import java.util.ArrayList;
import java.util.Date;
import java.util.Vector;
import java.util.Calendar;
import java.util.GregorianCalendar;


public class Hasieratzaile {

	
	public static void main(String[] args) {

		// Profilak sortu
		
		Profila profil1 = new Profila(1, "Irakasleak", "Irakasleei dagokien profila") ;
		Profila profil2 = new Profila(2, "Ikasleak", "Ikasleei dagokien profila") ;

		ArrayList <Profila> profilak = new ArrayList<Profila>();
		ArrayList <Gunea> guneak = new ArrayList<Gunea>();
		
		profilak.add(profil1);
		profilak.add(profil2);
		
		// Erabiltzaile pare bat (eta dagozkien txartelak) sortu
		
			// gaitu data eta gaitu ordua klase bereko objektu berberan sartuko ditugu
		    Calendar gaituData = new GregorianCalendar();
		    gaituData.set(2005, 1, 1, 10, 00);  // bi urte baino gehiago dituen txartel bat 
		    
		    /*
		    
		     Calendar desgaituData = new GregorianCalendar();
		     desgaituData.set(2007, 1, 1, 10, 00);
		    
		     */
		    
			Txartela txartel1 = new Txartela(1, gaituData.getTime(), /* desgaituData.getTime() */ null);
			Erabiltzaile er1 = new Erabiltzaile(1,"Juanan","pasahitza",txartel1);
			profil1.gehitu(er1);
			
			Txartela txartel2 = new Txartela(2, gaituData.getTime(), /* desgaituData.getTime() */ null);
			Erabiltzaile er2 = new Erabiltzaile(2,"Joserra","gakoa",txartel2);
			profil1.gehitu(er2);

		// sarbide eskaerak sortu eta sarbi eskaera bakoitzeko, dagokion erabiltzaileari lotu
			
			// TODO: Adi!, sarbide eskaerak sortzerakoan, kontuan izan
			// beharko genuke ezin dela izan SE baten Data 
			// dagokion txartelaren gaitutako data baino "zaharragoa"
			// edo dagokion txartelaren desgaitutako data baino "berriagoa"
			Calendar seData1 = new GregorianCalendar();
			seData1.set(2007,1,1, 10, 30);
			Calendar seData2 = new GregorianCalendar();
			seData2.set(2007,1,1, 11, 30);

			// Txartel Irakurgailuak sortu
			TxartelIrakurgailua ti1 = new TxartelIrakurgailua(1);
			TxartelIrakurgailua ti2 = new TxartelIrakurgailua(2);

			// Azkenean! Sarbide eskaerak sortu

			// Lehenengo irakaslearen sarb_esk
			SarbideEskaera se1 = new SarbideEskaera(seData1.getTime(),/*baimenduta?*/ true, /*ukapenarenArrazoia*/ "", txartel1, /* TxartIrak */ ti1);
			txartel1.gehitu(se1);
			SarbideEskaera se2 = new SarbideEskaera(seData2.getTime(),/*baimenduta?*/ true, /*ukapenarenArrazoia*/ "", txartel1, /* TxartIrak */ ti1);
			txartel1.gehitu(se2);
			
			// Bigarren irakaslearen sarb_esk
			seData1.set(2007,/* month*/ 2, /* day */ 1, 10, 30); // azken hilabete honetan egindakoa
			SarbideEskaera se3 = new SarbideEskaera(seData1.getTime(), false, "debekatutako gunea", txartel2, ti1);
			txartel2.gehitu(se3);

			Kudeatzailea eraikikon = new Kudeatzailea(profilak, /* guneak */ null);
			
			Gatazkatsuena proba = new Gatazkatsuena(eraikikon);
			proba.gatazkatsuenak_aurkitu();
	}

}
